<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<script type="text/javascript">
    /*
    1.	await 右侧的表达式一般为 promise 对象, 但也可以是其它的值
    2.	如果表达式是 promise 对象, await 返回的是 promise 成功的值
    3.	如果表达式是其它值, 直接将此值作为 await 的返回值

    注意
    1.	await 必须写在 async 函数中, 但 async 函数中可以没有 await
    2.	如果 await 的 promise 失败了, 就会抛出异常, 需要通过 try...catch 捕获处理
    */

    async function main() {
        let p1 = new Promise((resolve, reject) => {
            resolve('OK');
        });

        let res1 = await p1;
        console.log(res1);

        let res2 = await 2;
        console.log(res2);

        let p2 = new Promise((resolve, reject) => {
            reject("error");
        });

        try {
            let res3 = await p2;
            console.log(res3);
        } catch (e) {
            console.log("res3 exception:" + e);
        }
    }

    main();
</script>
</body>
</html>